package com.learner.exam.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.learner.pojo.exam.QuestionBank;
import com.learner.pojo.exam.vo.BankHaveQuestionSum;
import com.learner.pojo.exam.vo.PageResponse;
import com.learner.pojo.exam.vo.QuestionVo;

import java.util.List;

/**
 * @author ice2020x
 * @Date: 2023/3/7
 * @Description: 题库实体
 **/
public interface QuestionBankService extends IService<QuestionBank> {

    /**
     * 按类型获取提库问题总数
     *
     * @param bankName 题库名
     * @param page     page
     * @param pageSize pageSize
     * @return 结果
     */
    PageResponse<BankHaveQuestionSum> getBankHaveQuestionSumByType(String bankName, Integer page, Integer pageSize);

    /**
     * 查询题目根据题库id
     *
     * @param bankId 题库id
     * @return 结果
     */
    List<QuestionVo> getQuestionsByBankId(Integer bankId);

    /**
     * 查询题目根据题库id
     *
     * @param bankId 题库id
     * @param type   类型
     * @return 结果
     */
    List<QuestionVo> getQuestionByBankIdAndType(Integer bankId, Integer type);

    /**
     * 查询所有题库
     *
     * @return 结果
     */
    List<QuestionBank> getAllQuestionBanks();

    /**
     * 添加题目到题库
     *
     * @param questionIds 题目id列表
     * @param banks       题库id列表
     */
    void addQuestionToBank(String questionIds, String banks);

    /**
     * 删除题目到题库
     *
     * @param questionIds 题目id列表
     * @param banks       题库id列表
     */
    void removeBankQuestion(String questionIds, String banks);

    /**
     * 删除题库
     *
     * @param ids 题库id列表
     */
    void deleteQuestionBank(String ids);

    /**
     * 添加题库
     *
     * @param questionBank 题库信息
     */
    void addQuestionBank(QuestionBank questionBank);
}
